#pragma once
#include "../stdafx.h"
#include "../data.h"
#include "common/utility.h"

struct Vertex
{
	DirectX::XMFLOAT3 Pos;
	DirectX::XMFLOAT3 Normal;
	DirectX::XMFLOAT2 Texcoord;
};

class FrameResource
{
public:
	FrameResource(ID3D12Device* device, UINT passCnt, UINT objCnt, UINT materialCount);
	FrameResource(const FrameResource& rhs) = delete;
	FrameResource& operator=(const FrameResource& rhs) = delete;
	FrameResource();

	ComPtr<ID3D12CommandAllocator> cmdListAlloc;

	std::unique_ptr<UploadBuffer<ObjectConstants>> objCB;
	std::unique_ptr<UploadBuffer<PassConstants>> passCB;
	std::unique_ptr<UploadBuffer<MaterialConstants>> matCB;

	UINT64 fence = 0;
};